1. Field of the Invention
The present-invention relates to a data communication system in which a plurality of electronic control units are connected to a common data bus, these units communicating with one another through the common data bus, and also relates to the electronic control unit used in the system, and more particularly relates to such a system suitable for use in an automotive vehicle.
2. Description of Related Art
A data communication system of this kind has been known, in which a plurality of nodes each composed of an electronic control unit (ECU) for controlling, for example, operation of an engine or an instrument panel mounted on an automotive vehicle are connected to a common data communication bus and communicate with one another through the common data bus, as shown in FIG. 6. Each node (ECU) includes a central processing unit (CPU) for controlling electronic equipment and a communication control unit composed of a communication integrated circuit (IC) for formulating data to be transmitted and receiving data from other nodes, and a driver for transmitting and receiving data to and from the common data bus.
The communication IC formulates data to be transmitted, upon receipt of information from the CPU, according to a predetermined coding rule. For example, the data are formulated according to the well known NRZ (Non-Return-to-Zero) in which a signal level (HIGH or LOW) of a single bit is always kept constant and the well known bit stuffing rule in which a bit of a reverse level (stuff bit) is inserted in a bit stream when a certain number of the same level bits (for example, five bits) appears in series. The data are transmitted according to a certain transmission protocol, for example, the non-destructive Carrier Sense Multiple Access with Collision Detection (CSMA/CD). Under the non-destructive CSMA/CD, transmission of data from any one of the nodes starts when no data from other nodes is flowing on the common data bus to avoid data collision on the bus. However, this is not always possible when the data to be transmitted are congested. So, the data collision on the bus is always watched, and if it happens, data having a higher priority are permitted to flow on the bus while the transmission of data having a lower priority is brought to a halt. After a certain period of time, the transmission of the data brought to a halt is started again. This process is performed by bringing the signal level of the data having a higher priority to a dominant level (an active level which is HIGH or LOW according to the setting of the system).
An example of a conventional frame format for data to be transmitted is shown in FIG. 7. The frame consists of the following fields: SOF (Start of Frame), MESSAGE ID (a content of data), DESTINATION ID (an address of the node to which data are to be transmitted), DATA 1 and DATA 2 (data themselves), CRC (Cyclic Redundancy Check for detection of bit errors), CRC-DELIMITER (end of CRC), RSP (Response from a receiving node) and EOF (End of Frame). The field of MESSAGE ID and DESTINATION ID is 8 bits long, and each field of DATA 1 and DATA 2 contains one byte data, one byte being 8 bits long. CRC is 8 bits long, CRC-DELIMITER is 2 bits long, and RSP is also 2 bits long.
The conventional frame described above includes two data fields, DATA 1 and DATA 2, each having a fixed length of 8 bytes. Therefore, the data space is not long enough in case the data volume is large. It may be possible to transmit a large volume of data by dividing them into two or more sections. In this case, however, efficiency of transmission becomes low because plural frames containing these divided data sections have to be formulated. It may be also possible to increase the number of data fields. In this case, however, the frame length becomes too long, which will cause congestion on the bus.
In order to solve the problem of the fixed length of the data field, it has been proposed to make the data field length variable and to add a field for indicating the length of the data. Such a frame format has been used, for example, in the well known CAN system. In this system, when information indicating the length of the data is deformed by noise or any other reasons during the data transmission, the bit error check will not be performed correctly. For example, if the information originally indicating a data length of 8 bytes is changed to the one indicating a data length of 7 bytes, while the data length itself is 8 bytes, the last 8 bits of the data will be judged as CRC. In this case, the bit error check is done using the last 8 bits, and if the check result should be affirmative, the receiving node receives and processes the data though such a receipt is in error. Under this situation, since the RSP signal indicating a correct receipt of data transmission is not returned timely from the receiving node to the transmitting node, the transmitting node transmits again the same data, and the receiving node can receive the correct data this time. However, there is a possibility that the transmitting node does not transmit the data again even when such is necessary. That is, if the data are transmitted to plural receiving nodes, and one node receives the data in error while other nodes receive the data correctly, then the response signal RSP is returned timely from one of the other nodes correctly received the data. In this situation, the transmitting node does not repeat the data transmission, and, accordingly, the node received the data in error cannot be corrected by the correct data.